'use strict';
const jwt = require('jsonwebtoken')
const TOKEN_STR = {
    TOKEN_ENCODE_STR: 'Ftc_token_encode_str', //用于token加密的字符串
    PWD_ENCODE_STR: 'Ftc_pwd_encode_str', //用于验证码加密的字符串
}
const { TOKEN_ENCODE_STR, PWD_ENCODE_STR } = TOKEN_STR

module.exports = {
  TOKEN_STR,
  // 生成 token
  createToken (str) {
      return jwt.sign({ str }, TOKEN_ENCODE_STR, { expiresIn: '30d' })
  },
  checkTokenCode({ token, code }) {
    try {
      let res = this.ctx.model.Code.findOneAndDelete({token,code})
      if (res == null) {
        return false
      }
    } catch(e) {
      return false
    }
    return true
  },
  parseMsg(action, payload = {}, metadata = {}) {
    const meta = Object.assign({}, {
      timestamp: Date.now(),
    }, metadata);

    return {
      meta,
      data: {
        action,
        payload,
      },
    };
  },
};